草庐IT

iphone - NSCFString 内存泄漏

全部标签

iphone - 在 iPhone 上使用 libxml2 或 NSXMLParser 性能更好?

我很好奇你的iPhone上高性能XML解析的解决方案是什么,因为它的CPU能力有限。我查看了Apple作为演示提供的XMLPerformanceApp,似乎对于他们正在解析的数据馈送(300首iTunes歌曲)..libxml2似乎总是成为最前沿的赢家。根据您在处理小于100Kb的数据方面的经验,您更喜欢什么来获得最佳性能?我目前正在使用TouchXML+libxml2,看看是否可以按原样优化解析速度。感谢您的反馈! 最佳答案 您可以随时查看我的NSXMLParser替代品。它从流中读取XML数据而不是将其全部保存在内存中,然后一次

iphone - 在 Objective-C 中动态实例化类,可能吗?

我的问题如下。我有一个方法,它只需要一个XML摘录和一个XPath。然后它应该为该XML摘录创建一个对象数组。意思是如果我通过以下XML:Bob50我的方法将实例化类User的实例并使用键值编码来设置实例变量。这很简单。唯一的问题是我主要来自脚本编写背景,并试图查看是否可以将类名传递给该方法。现在它正在做一个User类,稍后它可能是一个Cars类,然后是一个Home类。从这种不同类型的方法实例化对象同时保持代码尽可能抽象的最佳方法是什么? 最佳答案 要使用其名称实例化类,您可以使用NSClassFromString:idobj=[[

c++ - 激活上下文导致动态加载的 DLL 上的文件句柄泄漏

我有一个动态加载和卸载的DLL,它需要COMCTL32.dll>=v6.0和MSVCR>=v9.0。为确保加载正确的版本,我在VisualStudio项目设置中启用list文件生成,并将此条目添加到另一个list文件:type="win32"name="Microsoft.Windows.Common-Controls"version="6.0.0.0"processorArchitecture="*"publicKeyToken="6595b64144ccf1df"language="*"/>在一个测试程序中我调用了LoadLibrary()其次是FreeLibrary()该DLL,

windows - UMDH 日志(Windows 上的内存泄漏)

我正在使用UMDH工具来分析我的应用程序的内存泄漏。UMDH日志观察到的主要泄漏如下:237856226(241016812-3160586)3704833分配BackTraceE93685198(3704833-19635)BackTraceE9分配ntdll!RtlIpv4StringToAddressExW+00011866ntdll!RtlSubAuthorityCountSid+00000019MSVCR80!malloc+0000007A207093760(207355904-262144)791allocsBackTrace6EB790(791-1)个BackTrace6

Windows 保护模式 - 内存

我下载了一个名为HxD的磁盘和内存编辑器(可在http://mh-nexus.de/en/hxd/获得)。我想知道它如何能够访问(读取和修改)分配给我系统(WindowsXPProSP3)上运行的所有应用程序的虚拟内存。据我所知,Windows正在保护模式下运行,因此无法进行此类尝试。又不是,怎么可能呢? 最佳答案 Windows确实保护了应用程序的内存。每个应用程序都有自己的地址空间,并且无法访问它之外的任何内容。但是,Windows也有允许您从其他进程访问内存的功能。不是通过简单地访问指针,而是通过调用函数从其他进程获取数据。这

c# - 运行 Windows 服务以观察服务运行增长内存(泄漏)

我已经检查了这里的所有帖子,但到目前为止找不到适合我的解决方案。我确实设置了一个小服务,它应该只监视我要监视的其他服务是否运行,如果没有运行,则重新启动它并在应用程序事件日志中放置一条消息。该服务本身运行良好,没什么特别的:),但是当我启动该服务时,它使用大约1.6MB的RAM,并且每10秒它增长60-70k,这足以忍受它。我尝试处理并清除所有资源。尝试使用System.Timers而不是实际的解决方案,但没有任何效果如我所愿,内存仍在增长。调试或发布版本没有区别,我在.Net2上使用它,不知道它对你3、3.5或4是否有影响。有什么提示吗?!usingSystem;usingSyste

java - 为什么 Glassfish 在 Linux 中似乎比在 Windows 中需要更多内存?

我最近一直在修补GlassFish2.1.1,既有UbuntuLinux机器,也有WindowsXP机器。查看Windows上代表asadmin、JavaDB服务器和GlassFish应用程序服务器域本身的“java”进程(使用任务管理器),它们加起来刚好超过100MB的内存。但是,查看Linux机器上的相同进程(使用“psaux”和Gnome系统监视器)显示内存使用量大约为800MB。这对我来说似乎非常奇怪。如果有的话,我会假设Windows上的内存使用不太有利。无论哪种方式,我都不会期望两者之间的Swing如此戏剧化。我在这里缺少一些基本的东西吗?我不一定需要详细的分析信息,我只需

windows - 是什么导致磁盘上的驱动程序和映射到内存的驱动程序之间存在差异?

嘿,今天我尝试对NDIS.sys进行二进制比较,我发现了一些奇怪的东西。我接受了一个函数,并开始比较它。前30个字节在磁盘(使用IDA)和内存(使用WinDbg)上是相同的。然后,事情发生了变化。我看到类似“jmp_imp_XXXXX”的内容。JMP字节相同,但地址不同。我的问题是-是什么造成了差异?我认为这与搬迁有关。虽然跳转是在同一个模块中寻址,但它是一个长跳转,它相对于模块基地址。如果发生重定位,它也需要重定位这个地址,尽管它在同一个模块上。我是对还是完全错了?:-)谢谢。 最佳答案 是的,当一个模块没有加载到它在内存中的首选

windows - 识别内存映射文件

我正在使用VirtualQuery识别部分进程的虚拟内存。我确定了映射文件(MEM_MAPPED)占用的区域,但是如何确定分配在那里的文件的实际文件(文件名)?我想它与MapView*API系列有关,但无法准确地弄清楚... 最佳答案 看起来GetMappedFileName()是您想要的函数。DWORDWINAPIGetMappedFileName(__inHANDLEhProcess,__inLPVOIDlpv,__outLPTSTRlpFilename,__inDWORDnSize);GetMappedFileNameonMS

windows - 内核内存地址空间

我读到过,在具有4GB系统内存的32位系统上,2GB分配给用户模式,2GB分配给内核模式。但是,如果我有一个具有512MB内存的系统,它会被划分为256MB给用户地址空间和256MB给内核地址空间吗? 最佳答案 您混淆了物理内存和虚拟内存。2GB分配给用户/系统,但它是虚拟内存。更正确的说法是它们不是分配的,而是构成了一个寻址空间。最初这个空间根本没有绑定(bind)到物理内存。当应用程序实际需要内存时(第一次是在启动时)分配物理内存并将地址空间中的一些地址映射到它。当内存被分配但使用时间不够长或PC的物理内存用完时,数据可以转储到